-- @Author: baidwwy
-- @Date:   2020-03-28 01:03:21
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-08-23 23:25:36



function 任务控制类:刷出吆五喝六()

  local 刷新名称 = ""
   local 天关地图= 1174
  for n=1,60 do

  local 随机造型={"花妖","黑山老妖","鲛人","蜃气妖","野猪精","蜘蛛精"}
      local 天关id=self:生成任务id()
      local 临时坐标=地图处理类:Randomloadtion(天关地图)
      任务数据[天关id]={
       类型= "吆五喝六"
     ,id=天关id
     ,起始=os.time()
     ,结束= 1800
     ,任务id=天关id
     ,地图编号=天关地图
     ,地图名称=MapData[天关地图].名称
     ,名称= "魔界奇兵"
     ,称谓= "吆五喝六活动"
     ,造型=随机造型[math.random(1,#随机造型)]
     ,方向=math.random(4)-1
     ,坐标=临时坐标
     ,数字id=0
     ,战斗=false
     }
     地图处理类:添加单位(任务数据[天关id])
    刷新名称 = 刷新名称..""..MapData[天关地图].名称.."."
	
 end
 广播消息( "#hd/#g/一群魔界奇兵出现在了#S"..MapData[天关地图].名称.."#g/20分钟内消灭他们即可刷新吆五喝六BOOS#51")
    发送游戏公告( "#hd/#g/一群魔界奇兵出现在了#S"..MapData[天关地图].名称.."#g/20分钟内消灭他们即可刷新吆五喝六BOOS")
end

function 任务控制类:刷出打宝BOSS(编号)---------------------
 -- local 刷出地图={7093,7094,7095,7096,7097,7098}
  local 刷出地图={1110,1173,1193,1506,1514,1091,1501,1070,1208,1235}
  local 刷新名称 = ""
  for n=1,8 do
  local 天关地图=刷出地图[n]
  local 随机造型={"超级鲲鹏"}
      local 天关id=self:生成任务id()
      local 临时坐标=地图处理类:Randomloadtion(天关地图)
      任务数据[天关id]={
       类型= "打宝BOSS"
     ,id=天关id
     ,起始=os.time()
     ,结束= 1800
     ,任务id=天关id
     ,地图编号=天关地图
     ,地图名称=MapData[天关地图].名称
     ,名称= "超级鲲鹏"
     ,称谓="福利BOSS"
     ,造型=随机造型[math.random(1,#随机造型)]
     ,方向=math.random(4)-1
     ,坐标=临时坐标
     ,数字id=0
     ,战斗=false
     }
     地图处理类:添加单位(任务数据[天关id])
    刷新名称 = 刷新名称..""..MapData[天关地图].名称.."."
	 广播消息( "#hd/#g/一只福利BOSS降临在了#S"..MapData[天关地图].名称.."#g/请各位侠士赶紧前往击杀#51")
    发送游戏公告( "#hd/#g/一只福利BOSS降临在了#S"..MapData[天关地图].名称.."#g/请各位侠士赶紧前往击杀")
 end

  
 end
 
 function 任务控制类:刷出打宝BOSS1()---------------------
 -- local 刷出地图={7093,7094,7095,7096,7097,7098}
  local 天关地图= 1232
  local 刷新名称 = ""
  for n=3,5 do

  local 随机造型={"超级鲲鹏"}
      local 天关id=self:生成任务id()
      local 临时坐标=地图处理类:Randomloadtion(天关地图)
      任务数据[天关id]={
       类型= "打宝BOSS"
     ,id=天关id
     ,起始=os.time()
     ,结束= 1800
     ,任务id=天关id
     ,地图编号=天关地图
     ,地图名称=MapData[天关地图].名称
     ,名称= "超级鲲鹏"
     ,称谓="福利BOSS"
     ,造型=随机造型[math.random(1,#随机造型)]
     ,方向=math.random(4)-1
     ,坐标=临时坐标
     ,数字id=0
     ,战斗=false
     }
     地图处理类:添加单位(任务数据[天关id])
    刷新名称 = 刷新名称..""..MapData[天关地图].名称.."."
	
 end
  广播消息( "#hd/#g/一只福利BOSS降临在了#S"..MapData[天关地图].名称.."#g/请各位侠士赶紧前往击杀#51")
    发送游戏公告( "#hd/#g/一只福利BOSS降临在了#S"..MapData[天关地图].名称.."#g/请各位侠士赶紧前往击杀")
 end
 
  function 任务控制类:刷出打宝BOSS2()---------------------
 -- local 刷出地图={7093,7094,7095,7096,7097,7098}

  local 刷新名称 = ""
  for n=1,3 do
  local 天关地图= 1501
  local 随机造型={"暗黑童子","暗黑谛听","白豹"}
  local 随机名称={"福利银子怪","福利仙玉怪","福利突破怪"}
  
      local 天关id=self:生成任务id()
      local 临时坐标=地图处理类:Randomloadtion(天关地图)
      任务数据[天关id]={
       类型= "福利怪"
     ,id=天关id
     ,起始=os.time()
     ,结束= 1800
     ,任务id=天关id
     ,地图编号=天关地图
     ,地图名称=MapData[天关地图].名称
     ,名称= 随机名称[n]
     ,称谓="☆☆☆☆超级福利怪☆☆☆☆"
     ,造型=随机造型[n]
     ,方向=math.random(4)-1
     ,坐标=临时坐标
     ,数字id=0
     ,战斗=false
     }
     地图处理类:添加单位(任务数据[天关id])
    刷新名称 = 刷新名称..""..MapData[天关地图].名称.."."
	广播消息( "#hd/#g/"..随机名称[n].."出现在了#S"..MapData[天关地图].名称.."#g/可获得丰厚奖励，请玩家寻找击杀")
    发送游戏公告( "#hd/#g/"..随机名称[n].."出现在了#S"..MapData[天关地图].名称.."#g/可获得丰厚奖励，请玩家寻找击杀")
 end
  
 end
 function 任务控制类:完成福利怪任务(任务id,id组)-------------
  for n=1,#id组 do
   if 玩家数据[id组[n]]~=nil then
     self.符合抓鬼id=true
     if self.符合抓鬼id then

	    if 任务数据[任务id].名称 == "福利银子怪"  and math.random(100)<= 50  then 
		   道具处理类:给予道具(id组[n],"银币礼包1000W",nil,nil,1)
		    发送数据(玩家数据[id组[n]].连接id,7,"#Y/恭喜你获得了#R/银币礼包1000W")
          广播消息( "#G玩家#R"..玩家数据[id组[n]].角色.名称.."#G打败了#R/福利银子怪#Y/获得了GM奖励的#R/银币礼包1000W")
		elseif 任务数据[任务id].名称 == "福利仙玉怪"   and math.random(100)<= 50   then  
		 道具处理类:给予道具(id组[n],"仙玉10000",nil,nil,1)
		  发送数据(玩家数据[id组[n]].连接id,7,"#Y/恭喜你获得了#R/仙玉10000")
          广播消息( "#G玩家#R"..玩家数据[id组[n]].角色.名称.."#G打败了#R/福利仙玉怪#Y/获得了GM奖励的#R/仙玉10000")
		elseif 任务数据[任务id].名称 == "福利突破怪"   and math.random(100)<= 50   then  
		道具处理类:给予道具(id组[n],"元神突破丹",nil,nil,3)
		 发送数据(玩家数据[id组[n]].连接id,7,"#Y/恭喜你获得了#R/元神突破丹*3")
          广播消息( "#G玩家#R"..玩家数据[id组[n]].角色.名称.."#G打败了#R/福利突破怪#Y/获得了GM奖励的#R/元神突破丹*3")
		end
       end
     end
   end

 地图处理类:移除单位(玩家数据[id组[1]].地图,任务id)
 任务数据[任务id]=nil

 end
function 任务控制类:完成打宝BOSS任务(任务id,id组)-------------
  for n=1,#id组 do
   if 玩家数据[id组[n]]~=nil then
     self.符合抓鬼id=true
     if self.符合抓鬼id then
       self.抓鬼奖励参数=1
       self.抓鬼奖励等级=玩家数据[id组[n]].角色.等级
       self.抓鬼奖励经验=math.floor(self.抓鬼奖励等级*self.抓鬼奖励等级*120*self.抓鬼奖励参数 + 5000000)
       角色处理类:添加经验(玩家数据[id组[n]],self.抓鬼奖励经验,"打宝BOSS")
	    角色处理类:添加银子(玩家数据[id组[n]],1000000,"打宝BOSS")
		角色处理类:添加仙玉(玩家数据[id组[n]],1000,"打宝BOSS")
		角色处理类:添加成就积分(玩家数据[id组[n]],10)
         if 玩家数据[id组[n]].召唤兽.数据.参战~=0 then
          self.抓鬼奖励等级=玩家数据[id组[n]].召唤兽.数据[玩家数据[id组[n]].召唤兽.数据.参战].等级
          self.抓鬼奖励经验=math.floor(self.抓鬼奖励等级*self.抓鬼奖励等级*20*0.35+150)
          玩家数据[id组[n]].召唤兽:添加经验(self.抓鬼奖励经验,id组[n],玩家数据[id组[n]].召唤兽.数据.参战,2)
         end
       end
     end
   end
  if math.random(100)<= 1 then  
     管理工具类:打宝抽奖1(id组[1])
  else 
    管理工具类:打宝抽奖(id组[1])
  end
   地图处理类:移除单位(玩家数据[id组[1]].地图,任务id)
   任务数据[任务id]=nil
 end
 
 
 function 任务控制类:完成魔界奇兵骰子(id,中奖)
          道具处理类:给予道具(id,中奖,1)
          广播消息( "#G玩家#R"..玩家数据[id].角色.名称.. "#G在消灭了魔界奇兵，获得额外奖励#R"..中奖)
		 
 end
 
 function 任务控制类:魔界奇兵骰子中奖(点数)
 
 local 奖励参数 = 点数 
 local 中奖 = "未中奖"
 
          if 奖励参数 <= 1 then
            中奖 ="抽奖兑换券" 
          --广播消息( "#G玩家#R"..玩家数据[id].角色.名称.."#G在消灭了魔界奇兵，获得额外奖励#R抽奖兑换券")
        elseif 奖励参数 <= 8 then
		
        中奖 ="星辉石1—3J礼包" 
        --广播消息( "#G玩家#R"..玩家数据[id].角色.名称.."#G在消灭了魔界奇兵，获得额外奖励#R星辉石1—3J礼包")
		elseif 奖励参数 <= 9 then
		
        中奖 ="抽奖兑换券" 
        --广播消息( "#G玩家#R"..玩家数据[id].角色.名称.."#G在消灭了魔界奇兵，获得额外奖励#R抽奖兑换券")
        elseif 奖励参数 <= 10 then
        中奖 = "星辉石2—6J礼包"
        --广播消息( "#G玩家#R"..玩家数据[id].角色.名称.."#G在消灭了魔界奇兵，获得额外奖励#R星辉石2—6J礼包")
       
        elseif 奖励参数 <= 30 then
       中奖 = "宝石1—5J礼包"
        --广播消息( "#G玩家#R"..玩家数据[id].角色.名称.."#G在消灭了魔界奇兵，获得额外奖励#R宝石1—5J礼包")
        elseif 奖励参数 <= 50 then
      中奖 = "宝石5—8J礼包"
        --广播消息( "#G玩家#R"..玩家数据[id].角色.名称.."#G在消灭了魔界奇兵，获得额外奖励#R宝石5—8J礼包")
       
        elseif 奖励参数 <= 65 then
            中奖 ="星辉石6—9J礼包"
            --广播消息( "#G玩家#R"..玩家数据[id].角色.名称.. "#G在消灭了魔界奇兵，获得额外奖励#R星辉石6—9J礼包")
		elseif 奖励参数 <= 80 then
            中奖 ="五宝礼盒"
            --广播消息( "#G玩家#R"..玩家数据[id].角色.名称.. "#G在消灭了魔界奇兵，获得额外奖励#R五宝礼盒")
		elseif 奖励参数 <= 95 then
            中奖 ="三界密录"
            --广播消息( "#G玩家#R"..玩家数据[id].角色.名称.. "#G在消灭了魔界奇兵，获得额外奖励#R三界密录")
		elseif 奖励参数 <= 99 then
            中奖 ="抽奖兑换券"
            --广播消息( "#G玩家#R"..玩家数据[id].角色.名称.. "#G在消灭了魔界奇兵，获得额外奖励#R抽奖兑换券")
		elseif 奖励参数 <= 100 then
            中奖 ="抽奖兑换券"
            --广播消息( "#G玩家#R"..玩家数据[id].角色.名称.. "#G在消灭了魔界奇兵，获得额外奖励#R抽奖兑换券")
         end
  return 中奖
 end 
 
 
function 任务控制类:完成魔界奇兵任务(任务id,id组)-------------
  for n=1,#id组 do
   if 玩家数据[id组[n]]~=nil then
     self.符合抓鬼id=true
     if self.符合抓鬼id then
       self.抓鬼奖励参数=1
       self.抓鬼奖励等级=玩家数据[id组[n]].角色.等级
       self.抓鬼奖励经验=math.floor(self.抓鬼奖励等级*self.抓鬼奖励等级*120*self.抓鬼奖励参数 + 5000000)
       角色处理类:添加经验(玩家数据[id组[n]],self.抓鬼奖励经验,"魔界奇兵")
	    角色处理类:添加银子(玩家数据[id组[n]],250000,"魔界奇兵")
		角色处理类:添加仙玉(玩家数据[id组[n]],150,"魔界奇兵")
		角色处理类:添加成就积分(玩家数据[id组[n]],5)
		
	  if math.random(100) <= 30  then	
		local 发送信息 = {}
		发送信息.点数 = math.random(100)
		发送信息.中奖 = self:魔界奇兵骰子中奖(发送信息.点数)
		发送数据(玩家数据[id组[n]].连接id, 6027,发送信息)
	  elseif  math.random(100) <= 50  and 是否聚宝盒(id组[n])  then	
		local 发送信息 = {}
		发送信息.点数 = math.random(100)
		发送信息.中奖 = self:魔界奇兵骰子中奖(发送信息.点数)
		发送数据(玩家数据[id组[n]].连接id, 6027,发送信息)
		
	  end
		
         if 玩家数据[id组[n]].召唤兽.数据.参战~=0 then
          self.抓鬼奖励等级=玩家数据[id组[n]].召唤兽.数据[玩家数据[id组[n]].召唤兽.数据.参战].等级
          self.抓鬼奖励经验=math.floor(self.抓鬼奖励等级*self.抓鬼奖励等级*20*0.35+150)
          玩家数据[id组[n]].召唤兽:添加经验(self.抓鬼奖励经验,id组[n],玩家数据[id组[n]].召唤兽.数据.参战,2)
         end
       end
     end
   end
   吆五喝六数量 = 吆五喝六数量 + 1
   
 地图处理类:移除单位(玩家数据[id组[1]].地图,任务id)
 任务数据[任务id]=nil
 if 吆五喝六数量 == 10  or  吆五喝六数量 == 20 or 吆五喝六数量 == 29 then
   发送游戏公告( "#G/还有#R/"..(30-吆五喝六数量).."#G/只魔界奇兵游荡在北俱芦洲，全部击杀即可唤醒吆五喝六BOSS")
   end
 end 
 
 
 function 任务控制类:完成全服BOSS任务(任务id,id组)-------------
      
     if 全服BOSS开关  then 
 
       世界BOSS数据[id组[1]].击杀 = true
	     GameActivities:刷新全服BOSS排行(id组[1])

	   全服BOSS开关 = false
      广播消息("#xt/#y/吆五喝六活动已经结束。恭喜玩家#R"..玩家数据[id组[1]].角色.名称.."#Y击杀了吆五喝六BOSS")
      发送网关消息("吆五喝六结束")
	   for n, v in pairs(FightGet.战斗盒子) do
           if FightGet.战斗盒子[n].战斗类型== 888902  then
              FightGet.战斗盒子[n]:强制结束战斗()
              FightGet.战斗盒子[n]=nil
             end
        end
	    for n,p in  pairs (玩家数据) do
	      if 玩家数据[n]~=nil then
	        GameActivities:刷新全服BOSS排行(n)
	      end
	     end
	  
	  else 

	  发送数据(玩家数据[id组[1]].连接id, 7, "#Y/活动已结束")
	   for n,p in  pairs (玩家数据) do
	    if 玩家数据[n]~=nil then
	      GameActivities:刷新全服BOSS排行(n)
	    end
	   end
	  for n, v in pairs(FightGet.战斗盒子) do
           if FightGet.战斗盒子[n].战斗类型== 888902  then
              FightGet.战斗盒子[n]:强制结束战斗()
              FightGet.战斗盒子[n]=nil
             end
        end
	  end
 end
 
 
  function 任务控制类:全服BOSS任务(id)-------------
      
     if 全服BOSS开关  then 
       
         local 奖励参数 = math.random(1,152) 
          if 奖励参数 <= 10 then
            道具处理类:给予道具(id,"抽奖兑换券",1)
          广播消息( "#G玩家#R"..玩家数据[id].角色.名称.."#G在吆五喝六BOSS中表现极佳，获得额外奖励#R抽奖兑换券")
        elseif 奖励参数 <= 40 then
		
        道具处理类:给予道具(id,"星辉石1—3J礼包",1)
        广播消息( "#G玩家#R"..玩家数据[id].角色.名称.."#G在吆五喝六BOSS中表现极佳，获得额外奖励#R星辉石1—3J礼包")
		elseif 奖励参数 <= 55 then
		
        道具处理类:给予道具(id,"抽奖兑换券",1)
        广播消息( "#G玩家#R"..玩家数据[id].角色.名称.."#G在吆五喝六BOSS中表现极佳，获得额外奖励#R抽奖兑换券")
        elseif 奖励参数 <= 60 then
        道具处理类:给予道具(id, "星辉石2—6J礼包",1)
        广播消息( "#G玩家#R"..玩家数据[id].角色.名称.."#G在吆五喝六BOSS中表现极佳，获得额外奖励#R星辉石2—6J礼包")
       
        elseif 奖励参数 <= 100 then
       道具处理类:给予道具(id, "宝石1—5J礼包",1)
        广播消息( "#G玩家#R"..玩家数据[id].角色.名称.."#G在吆五喝六BOSS中表现极佳，获得额外奖励#R宝石1—5J礼包")
        elseif 奖励参数 <= 130 then
      道具处理类:给予道具(id, "宝石5—8J礼包",1)
        广播消息( "#G玩家#R"..玩家数据[id].角色.名称.."#G在吆五喝六BOSS中表现极佳，获得额外奖励#R宝石5—8J礼包")
       
        elseif 奖励参数 <= 140 then
            道具处理类:给予道具(id,"星辉石6—9J礼包",1)
            广播消息( "#G玩家#R"..玩家数据[id].角色.名称.. "#G在吆五喝六BOSS中表现极佳，获得额外奖励#R星辉石6—9J礼包")
		elseif 奖励参数 <= 149 then
            道具处理类:给予道具(id,"五宝礼盒",1)
            广播消息( "#G玩家#R"..玩家数据[id].角色.名称.. "#G在吆五喝六BOSS中表现极佳，获得额外奖励#R五宝礼盒")
		elseif 奖励参数 <= 150 then
            道具处理类:给予道具(id,"三界密录",1)
            广播消息( "#G玩家#R"..玩家数据[id].角色.名称.. "#G在吆五喝六BOSS中表现极佳，获得额外奖励#R三界密录")
		elseif 奖励参数 <= 151 then
            道具处理类:给予道具(id,"抽奖兑换券",1)
            广播消息( "#G玩家#R"..玩家数据[id].角色.名称.. "#G在吆五喝六BOSS中表现极佳，获得额外奖励#R抽奖兑换券")
		elseif 奖励参数 <= 152 then
            道具处理类:给予道具(id,"抽奖兑换券",1)
            广播消息( "#G玩家#R"..玩家数据[id].角色.名称.. "#G在吆五喝六BOSS中表现极佳，获得额外奖励#R抽奖兑换券")
		else 
		角色处理类:添加仙玉(玩家数据[id],5,"吆五喝六BOSS")
         end
      
		 发送数据(玩家数据[id].连接id, 7,"恭喜你运气极佳，从BOSS身上获取了奖励")
	
	  end
	  

 end